package cn.kgc.spring.service.impl;

import cn.kgc.spring.annotations.TimeAdvice;
import cn.kgc.spring.service.TeacherService;
import org.springframework.stereotype.Component;

/**
 * @author 课工场
 * @date 2024/4/30
 * @description
 *
 *  连接点： 能增强业务功能的位置   方法执行前  方法执行后  .....
 *  切点：  被通知切中的方法
 *  通知：  增强的业务功能 称为通知
 *     根据通知的位置可以将通知分为以下5种类型
 *       1. 前置通知
 *       2. 后置通知
 *       3. 最终通知
 *       4. 异常通知
 *       5. 环绕通知
 *
 */
@Component("teacherService")
public class TeacherServiceImpl implements TeacherService {


    @TimeAdvice
    @Override
    public String teachOnline(String course) {

        System.out.println(course+"线上课程正在上课中...");

        // int i = 1/0;
        return course;
    }


    @TimeAdvice
    @Override
    public void teachOffline(String course, String teacherName) {

        System.out.println(teacherName+"老师的"+course+"线下课程正在上课中...");

    }
}
